// 2025/2/24
// https://www.lanqiao.cn/problems/20050/learning/?page=1&first_category_id=1
// 高能粒子

#include <iostream>
#include <vector>
#include <algorithm>
#include <climits>

using namespace std;

int main() {
    // 输入α粒子
    int n;
    cin >> n;
    vector<pair<int, int>> alpha(n); // 存储a和b
    for (int i = 0; i < n; ++i) {
        cin >> alpha[i].first >> alpha[i].second;
    }

    // 输入β粒子
    int m;
    cin >> m;
    vector<int> beta(m); // 存储c
    for (int i = 0; i < m; ++i) {
        cin >> beta[i];
    }

    // 对beta进行排序，方便后续二分查找
    vector<int> beta_sorted = beta;
    sort(beta_sorted.begin(), beta_sorted.end());

    // 二分答案的范围
    long long left = -1e18, right = 1e18;
    long long best_median = -1e18;
    int best_id = -1;

    while (left <= right) {
        long long mid = (left + right) / 2;
        vector<int> diff(m + 1, 0); // 差分数组

        // 遍历每个α粒子，计算对β粒子的贡献
        for (const auto& ab : alpha) {
            int a = ab.first, b = ab.second;
            if (a == 0) {
                if (b >= mid) {
                    diff[0]++;
                    diff[m]--;
                }
            } else if (a > 0) {
                // 解方程 y = a * c + b >= mid
                // c >= (mid - b + a - 1) / a （向上取整）
                long long c_min = (mid - b + a - 1) / a;
                int idx = lower_bound(beta_sorted.begin(), beta_sorted.end(), c_min) - beta_sorted.begin();
                diff[idx]++;
                diff[m]--;
            } else {
                // 解方程 y = a * c + b >= mid
                // c <= (mid - b) / a （向下取整）
                long long c_max = (mid - b) / a;
                int idx = upper_bound(beta_sorted.begin(), beta_sorted.end(), c_max) - beta_sorted.begin();
                diff[0]++;
                diff[idx]--;
            }
        }

        // 计算前缀和，找到贡献最大的β粒子
        int prefix = 0, max_count = 0, best_c_idx = -1;
        for (int i = 0; i < m; ++i) {
            prefix += diff[i];
            if (prefix > max_count) {
                max_count = prefix;
                best_c_idx = i;
            }
        }

        // 如果当前中位数可行，尝试更大的中位数
        if (max_count >= (n + 1) / 2) {
            best_median = mid;
            best_id = best_c_idx + 1; // 转换为1-based索引
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }

    // 输出结果
    cout << best_id << " " << best_median << endl;

    return 0;
}